<?php

class AggregatedModel_Item extends RL_Model
{
	var $page_citems = 5;
	var $items_count; // промежуточные переменные на самом деле должны возвращаться функцией
	var $pages_count;

	private $paramsSet = false;

	/**
	 * Установить параметры модели, делается перед получением пачки итемов.
	 * На основе этих параметров генерируется запрос.
	 *
	 * @return void
	 * @author Alexander Sibiryakov
	 **/
	public function setModelParams(
		fobject $tag=NULL,
		array $tdis=NULL,
		$page_number=NULL,
		$filter_by_day=NULL,
		$user=NULL,
		$orderby=NULL
		)
	{

		$this->tag = $tag;
		$this->tdis_enum = $tdis;
		$this->page_number = $page_number;
		$this->filter_by_day = $filter_by_day;
		$this->user = $user;
		$this->orderby = $orderby;
		$this->paramsSet = true;
	}

	/**
	 * Получить много итемов
	 *
	 * @return array
	 * @author Alexander Sibiryakov
	 **/
	public function getItems( $struct_type='native') {
		if (!$this->paramsSet) return NULL;
		
		$this->rh->UseClass("AggregatedModel_Feed_FeedInterface");
		$this->rh->UseClass("AggregatedModel_Feed_ReaderItems");
		
		$rdr = new AggregatedModel_Feed_ReaderItems();
		$rdr->rh = $this->rh;
		$rdr->setModelParams("tag", $this->tag);
		$rdr->setModelParams("tdis", $this->tdis_enum);
		$rdr->setModelParams("community_oid", $this->acl_ass->acl_data['comity_oid']);
		if (isset($this->acl_ass->acl_data["tdi_oid"])) $rdr->setModelParams("current_tdi_oid", $this->acl_ass->acl_data['comity_oid']);
		$rdr->setModelParams("filter_by_day", $this->filter_by_day);
		$rdr->setModelParams("user_oid", $this->user->id);
		$rdr->setModelParams("page_number", $this->page_number);
		$rdr->setModelParams("order_by", $this->order_by);
		$rdr->setModelParams("struct_type", $struct_type);
		
		// текущий метод является устаревшим, поэтому для него отключим листалку
		$rdr->setModelParams("no_pager", 1);
		
		$rdr->doStuff();
		return array($rdr->getItems(), $rdr->getPager());
	}

	protected function init() {
		$this->rh->UseClass('RL_CyrDate');
		$this->ctx->mm->setAclAssistant( $this->acl_ass );
	}
	



}
